Allan Day [Tue, 9 Aug 2011 14:51:37 +0000 (15:51 +0100)]
theme - soften notification popups
Some small changes to make notifications fit with the shell aesthetic
and make them match the mockups. Gives them a bigger corner radius,
smaller font and more transparency.
Allan Day [Wed, 17 Aug 2011 10:40:28 +0000 (11:40 +0100)]
theme: new chat input style, smaller meta messages
Match the mockup for chat input style and meta messages - gives
the input box more depth and definition, makes the meta messages
smaller and therefore more distinct and less distracting.
Colin Walters [Thu, 11 Aug 2011 09:47:38 +0000 (05:47 -0400)]
ShellApp: Use stable sequence for id, not pointer address
As danw points out,
"It's unique during the lifetime of the window, but reasonably likely to be
reused by another window after this one is destroyed. Using
meta_window_get_stable_sequence() might be better."
Colin Walters [Thu, 11 Aug 2011 09:35:23 +0000 (05:35 -0400)]
ShellApp: Change activation API
Since almost all of the callers of shell_app_activate were using the
default workspace (by passing -1), remove that parameter.
Add a new shell_app_activate_full() API which takes a workspace as
well as a timestamp; previously we might have been ignoring event
timestamps from elsewhere.
Colin Walters [Thu, 21 Apr 2011 17:35:01 +0000 (13:35 -0400)]
Kill off ShellAppInfo, move into ShellApp
This dramatically thins down and sanitizes the application code.
The ShellAppSystem changes in a number of ways:
* Preferences are special cased more explicitly; they aren't apps,
they're shortcuts for an app), and we don't have many of them, so
don't need e.g. the optimizations in ShellAppSystem for searching.
* get_app() changes to lookup_app() and returns null if an app isn't
found. The semantics where it tried to find the .desktop file
if we didn't know about it were just broken; I am pretty sure no
caller needs this, and if they do we'll fix them.
* ShellAppSystem maintains two indexes on apps (by desktop file id
and by GMenuTreeEntry), but is no longer in the business of
dealing with GMenuTree as far as hierarchy and categories go. That
is moved up into js/ui/appDisplay.js. Actually, it flattens both
apps and settings.
Also, ShellWindowTracker is now the sole reference-owner for
window-backed apps. We still do the weird "window:0x1234beef" id
for these apps, but a reference is not stored in ShellAppSystem.
The js/ui/appDisplay.js code is rewritten, and sucks a lot less.
Variable names are clearer:
Similarly for function names. We no longer call (for every app) a
recursive lookup in GMenuTree to see if it's in a particular section
on every category switch; it's all cached.
Florian Müllner [Fri, 24 Jun 2011 00:40:36 +0000 (02:40 +0200)]
calendar: Improve week start handling
Add a helper function (mostly copied from gtkcalendar.c) for getting
the first week day for the current locale, using nl_langinfo if
available and falling back to the GTK+ gettext fallback otherwise.
Use that function in the calendar, so that the LC_TIME setting is
used if possible.
layout: Don't create and destroy ripple animations
Instead, create three ripples and keep tweening them. This gives a dramatic
speedup when entering the overview, but means that we can't have the same animation
running twice. In this case, we "reset" the currently running ripple animation, but
it is hard to notice unless looking for it.
extensionSystem: Save extension errors per-extension
Extension developers may be confused about why their extensions aren't working:
the LookingGlass isn't a very obvious place, or even which errors are theirs.
To remedy this, save all errors per-UUID which allows them to be retrieved
later.
Add ShellVersion, designed for detecting OUT_OF_DATE extensions so they can't
be installed, as well as ApiVersion, designed for backwards-compatibility with
the SweetTooth web-app, which must support all shell versions.
telepathyClient: Add our own translations for timestamps
As an effort to prevent a string freeze to land timestamps on 3.0, we reused
translations for the calendar. Now that the string freeze is long gone, make
some proper strings.
Florian Müllner [Tue, 2 Aug 2011 13:42:45 +0000 (15:42 +0200)]
notification-daemon: Add support for 'default' actions
The notification spec supports the concept of a 'default' action:
"The default action (usually invoked my clicking the notification)
should have a key named "default". The name can be anything, though
implementations are free not to display it."
Support this by invoking the 'default' action rather than a emitting
the 'clicked' signal when clicking notifications which specifie a
default action.
Also don't add an action button for the default action.
Dan Winship [Mon, 25 Jul 2011 13:56:51 +0000 (09:56 -0400)]
layout: merge chrome.js into layout.js
LayoutManager and Chrome are already somewhat intertwined and will be
becoming more so. As a first step in merging them, move the Chrome
object into layout.js (with no other code changes).
Dan Winship [Mon, 25 Jul 2011 13:47:44 +0000 (09:47 -0400)]
lookingGlass: put this in the chrome layer
Looking Glass is supposed to slide out from underneath the panel.
Rather than fiddling with Main.chrome.actor directly, just add the lg
actor to the chrome, and fix its stacking there.
Dan Winship [Wed, 27 Jul 2011 14:03:30 +0000 (10:03 -0400)]
messageTray: move the summary notification out of MessageTray.actor
With the old pre-boxpointer summary notifications, it sort of made
sense that the summary notification actor was a child of the message
tray. But there's no reason for that now, and in fact, it ends up
requiring special cases in some places since hovering over the summary
notification counts as hovering over the tray. So, fix this.
Dan Winship [Thu, 21 Jul 2011 14:49:04 +0000 (10:49 -0400)]
panel: move the corners into the panel actor
Rather than having the panel corners as independent bits of chrome and
manually syncing their positions, put them inside the panel actor, and
update the panel's allocation code to position them correctly.
Dan Winship [Mon, 1 Aug 2011 19:16:45 +0000 (15:16 -0400)]
St: fix container paint volumes
If a container is not clip-to-allocation, then its get_paint_volume()
needs to include the paint volumes of all of its children, since they
(or their children) may paint outside the container's allocation.
Also, if the superclass get_paint_volume() returns FALSE, then the
subclass should return FALSE too.
MetaPlugin wraps a bunch of compositor (and plain metacity) methods
that we can just call ourselves, so just do that. (Presumably this
dates back to some ancient time when it was imagined that plugins
wouldn't need access to the full metacity API.)
Dan Winship [Wed, 13 Jul 2011 16:22:32 +0000 (12:22 -0400)]
shell-global: keep better track of screens and displays
Rather than constantly asking mutter for the MetaScreen, and then
figuring out the MetaDisplay/Display/etc from there, just keep track
of everything we care about inside ShellGlobal.
Allan Day [Tue, 2 Aug 2011 15:29:02 +0000 (16:29 +0100)]
theme: make modal dialog buttons match the mockups
The buttons should have a glassy transparent look. Also, they should not
be as tall, should light up on hover, and their labels should be white
in order to stand out. Making the labels solid white requires removing the
transparency set in modalDialog.js. Also, add a separate color setting
for the dialog as a whole - this avoids having a white icon.
Florian Müllner [Mon, 1 Aug 2011 22:29:28 +0000 (00:29 +0200)]
shell-app-system: Load settings apps
When porting to the new gnome-menus API in commit 8f3bdd4f1, the
initial loading of settings apps was left out, so settings panels
are neither found nor can be launched from the top panel menus.
Allan Day [Mon, 1 Aug 2011 19:54:42 +0000 (20:54 +0100)]
Theme: match message tray and panel box pointers
Panel box pointers were recently updated to match the mockups. Message
tray box pointers should look the same. Update the corner radius, stroke
colour and pointer dimensions to match.
Dan Winship [Sat, 30 Jul 2011 17:24:24 +0000 (13:24 -0400)]
panelMenu: add a gap between the panel and its menus
The specs call for a 2 pixel gap between the panel and its menus,
though we need to specify this as 4 pixels, since it's relative to the
bottom of the icon/title, not the bottom of the panel (up until now,
the point of the menu arrow was actually overlapping the menu's
highlight underline).
Also, move the gap specification into the CSS, since it makes more
sense there.
Allan Day [Sat, 30 Jul 2011 12:00:16 +0000 (13:00 +0100)]
Theme: improve menu popup appearance
Make menu popups fully match the mockups by changing the stroke
colour, pointer and corner radius size. This has the benefit of
distinguishing the menu from the background and gives it a subtler
appearance that fits the shell's aesthetic.
Jeremy Bicha [Sun, 17 Jul 2011 07:35:08 +0000 (03:35 -0400)]
Use "Region and Language Settings" label
Since this link in the keyboard menu points to Region and Language
Settings in System Settings, we should be consistent and use that
term instead of "Localization Settings"
Also, this removes ellipsis from "Show Keyboard Layout" since it
doesn't require further input.
chrome: Ignore minimized windows when updating visibility
The current check for fullscreen windows ignores the window's
minimization state, so that chrome which is hidden in fullscreen
will always hide if the window on top of the window stack is
fullscreen, even if it is actually minimized.
Instead, skip minimized windows when looking for fullscreen windows.
Dan Winship [Wed, 18 May 2011 18:52:27 +0000 (14:52 -0400)]
tests: fix up typelib include paths
The js modules have so many imports back and forth that it's pretty
much guaranteed that if you import even one of them, you'll end up
importing all of them, including ui.status.bluetooth and
ui.status.network. So fix up the typelib include paths the same way
gnome-shell-jhbuild does, so we can find everything.
Dan Winship [Wed, 4 May 2011 15:15:45 +0000 (11:15 -0400)]
messageTray: improve bad-markup handling
_fixMarkup() was supposed to be ensuring that the markup we passed to
clutter was correct, but it was validating the syntax incorrectly, and
wasn't checking that the markup was valid (or even well-formed). This
is bad because if you pass bad pango markup to
clutter_text_set_markup(), it will g_warn and drop the string on the
floor.
Fix by fixing up the regexps, and then calling Pango.parse_markup() on
the result, and just xml-escaping everything if parse_markup() fails.
Rui Matos [Fri, 6 May 2011 16:34:19 +0000 (17:34 +0100)]
volume.js: make slider menu items activatable
Keeping the volume menu open after setting the desired volume isn't that
useful and forces a second click (or an Esc press) to dismiss it. Allow for
the sliders to be used with a single click-hold-move-release.